package designPatterns_demo.factory_pattern.demo1;

public class ShapeFactory {
	// 使用 getShape 方法获取形状类型的对象
	public Shape getShape(String shapeType) {
		if (null == shapeType || "".equals(shapeType)) {
			return null;
		}
		/**
		 * JAVA中字符串比较equals()和equalsIgnoreCase()的区别
		 * 1、使用equals( )方法比较两个字符串是否相等。它具有如下的一般形式：
			boolean equals(Object str)
			这里str是一个用来与调用字符串（String）对象做比较的字符串（String）对象。如果两个字符串具有相同的字符和长度，它返回true，否则返回false。这种比较是区分大小写的。
		   2、为了执行忽略大小写的比较，可以调用equalsIgnoreCase( )方法。当比较两个字符串时，它会认为A-Z和a-z是一样的。其一般形式如下：
			boolean equalsIgnoreCase(String str)
			这里，str是一个用来与调用字符串（String）对象做比较的字符串（String）对象。如果两个字符串具有相同的字符和长度，它也返回true，否则返回false。
		 */
		if (shapeType.equalsIgnoreCase("CIRCLE")) {
	         return new Circle();
	     } else if (shapeType.equalsIgnoreCase("RECTANGLE")) {
	         return new Rectangle();
	     } else if (shapeType.equalsIgnoreCase("SQUARE")) {
	         return new Square();
	     }
	     return null;
	}
}
